package com.mercury.ec.module.air.controller.admin.demandorder.vo.demandroutesegment;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotNull;
import java.time.LocalDate;

@Schema(description = "管理后台 - 机票需求订单方案行程航段新增/修改 Request VO")
@Data
public class AirDemandRouteSegmentSaveReqVO {

    @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "32382")
    private Long id;

    @Schema(description = "订单id", requiredMode = Schema.RequiredMode.REQUIRED, example = "23189")
    private Long demandId;

    @Schema(description = "方案id", requiredMode = Schema.RequiredMode.REQUIRED, example = "23288")
    private Long demandSchemeId;

    @Schema(description = "行程id", requiredMode = Schema.RequiredMode.REQUIRED, example = "23615")
    private Long demandRouteId;

    @Schema(description = "序号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "序号不能为空")
    private Integer serialNo;

    @Schema(description = "航司代码")
    @Length(max = 8, message = "航司代码长度不能超过8")
    private String airlineNo;

    @Schema(description = "航班号")
    @Length(max = 16, message = "航班号长度不能超过16")
    private String flightNo;

    @Schema(description = "舱位")
    @Length(max = 2, message = "舱位长度不能超过2")
    private String cabin;

    @Schema(description = "出发机场三字码")
    @Length(max = 3, message = "出发机场三字码长度不能超过3")
    private String depart;

    @Schema(description = "抵达机场三字码")
    @Length(max = 3, message = "抵达机场三字码长度不能超过3")
    private String arrive;

    @Schema(description = "航班日期", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "航班日期不能为空")
    private LocalDate flightDate;

    @Schema(description = "抵达日期")
    private LocalDate arriveDate;

    @Schema(description = "出发时间(HH:mm)")
    @Length(max = 5, message = "出发时间长度不能超过5")
    private String departTime;

    @Schema(description = "抵达时间(HH:mm)")
    @Length(max = 5, message = "抵达时间长度不能超过5")
    private String arriveTime;

    @Schema(description = "出发航站楼")
    @Length(max = 16, message = "出发航站楼长度不能超过16")
    private String departTerminal;

    @Schema(description = "抵达航站楼")
    @Length(max = 16, message = "抵达航站楼长度不能超过16")
    private String arriveTerminal;

    @Schema(description = "机型")
    @Length(max = 16, message = "机型长度不能超过16")
    private String airModel;

    @Schema(description = "是否经停")
    private Boolean stop;

    @Schema(description = "经停机场三字码")
    @Length(max = 3, message = "经停机场三字码长度不能超过3")
    private String stopAirportNo;

    @Schema(description = "经停航站楼")
    @Length(max = 16, message = "经停航站楼长度不能超过16")
    private String stopTerminal;

    @Schema(description = "是否共享航班")
    private Boolean share;

    @Schema(description = "行李额")
    @Length(max = 32, message = "行李额长度不能超过32")
    private String baggageWeight;

}
